﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
public partial class admin1_Location : System.Web.UI.Page
{
    eStoreDataContext db = new eStoreDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {

        rpt_Location.DataSource = db.Locations;
        rpt_Location.DataBind();
        // do du lieu vao ddl_Add
        ddl_Add.DataSource = db.Categories.Where(c=>c.Activated==true);
        ddl_Add.DataValueField = "CategoryId";
        ddl_Add.DataTextField = "NameVN";
        ddl_Add.DataBind();

        ddl_Edit.DataSource = db.Categories.Where(c => c.Activated == true);
        ddl_Edit.DataValueField = "CategoryId";
        ddl_Edit.DataTextField = "NameVN";
        ddl_Edit.DataBind();
    }
    // Them moi
    protected void btnInsert_Click(object sender, EventArgs e)
    {
        try
        {
            var loc = new Location
            {
                Name = txt_Name.Text,
                NameVN = txt_NameVN.Text,
                CategoryId = int.Parse(ddl_Add.SelectedValue),
                Activated = bool.Parse(radAdd.SelectedValue)

            };
            //2.them vao
            db.Locations.InsertOnSubmit(loc);
            //3. luu
            db.SubmitChanges();
            txt_Name.Text = txt_NameVN.Text = "";
        }
        catch (Exception ex)
        {
            if (ex.Message.Contains("Unique_Name_Loc"))
            {
                Response.Write("<script> alert('Thêm mới Địa Điểm không thành công! Tên tiếng anh đã tồn tại!');</script>");
            }
            if (ex.Message.Contains("Unique_NameVN_Loc"))
            {
                Response.Write("<script> alert('Thêm mới Địa Điểm không thành công! Tên tiếng việt đã tồn tại!');</script>");
            }
        }
        rpt_Location.DataBind();
    }

    // xoa 
    protected void btnxoa_Click(object sender, EventArgs e)
    {
        int locId = int.Parse(((LinkButton)sender).CommandArgument.ToString());
        //1. tim
        var loc = db.Locations.Single(c => c.LocationId == locId);
        int dem = 0;
        foreach (var pla in db.PlaceNames)
        {
            if (pla.LocationId == locId)
            {
                if (dem > 0)
                    break;
                dem++;
            }
        }
        if (dem == 0)
        {
            //2. Xoa
            db.Locations.DeleteOnSubmit(loc);
            //3. luu
            db.SubmitChanges();
            Response.Redirect("Location.aspx");
        }
        else
        {
            Response.Write("<script> alert('Xóa Địa Điểm không thành công! Hãy xóa những Địa Danh của Địa Điểm này trước!');</script>");
            rpt_Location.DataBind();
        }
        
    }
    //chinh sua 
    protected void btnSua_Click(object sender, EventArgs e)
    {
        panel_Edit.Visible = true;

        int locid = int.Parse(((LinkButton)sender).CommandArgument.ToString());
        // tim 
        var loc = db.Locations.Single(c => c.LocationId == locid);
        // load thong tin
        txt_CatId_Edit.Text = loc.LocationId.ToString();
        txt_Name_Edit.Text = loc.Name;
        txt_NameVN_Edit.Text = loc.NameVN;

        ddl_Edit.DataSource = db.Categories.Where(c=>c.Activated==true);
        ddl_Edit.DataValueField = "CategoryId";
        ddl_Edit.DataTextField = "NameVN";

        ddl_Edit.SelectedValue = loc.CategoryId.ToString();

        if (loc.Activated == true)
        {
            radEdit.SelectedIndex = 0;
        }
        else
        {
            radEdit.SelectedIndex = 1;
        }
    }
    protected void btnSaveEdit_Click(object sender, EventArgs e)
    {
        try
        {
            // tim 
            var loc = db.Locations.Single(c => c.LocationId == int.Parse(txt_CatId_Edit.Text));
            loc.Name = txt_Name_Edit.Text;
            loc.NameVN = txt_NameVN_Edit.Text;
            loc.CategoryId= int.Parse(ddl_Edit.SelectedValue);
            loc.Activated = bool.Parse(radEdit.SelectedValue);
            //3 Luu
            db.SubmitChanges();
            txt_Name_Edit.Text = txt_NameVN_Edit.Text = "";
            panel_Edit.Visible = false;
        }
        catch (Exception ex)
        {
            if (ex.Message.Contains("Unique_Name_Loc"))
            {
                Response.Write("<script> alert('Chỉnh sửa Địa Điểm không thành công! Tên tiếng anh đã tồn tại!');</script>");
            }
            if (ex.Message.Contains("Unique_NameVN_Loc"))
            {
                Response.Write("<script> alert('Chỉnh sửa Địa Điểm không thành công! Tên tiếng việt đã tồn tại!');</script>");
            }
        }
        rpt_Location.DataBind();
    }
    protected void lbt_ClosEdit_Click(object sender, EventArgs e)
    {
        panel_Edit.Visible = false;
    }
    protected void lbt_ClosAdd_Click(object sender, EventArgs e)
    {
        panel_Add.Visible = false;
        txt_Name.Text = txt_NameVN.Text = "";
    }
    protected void lbt_Add_New_Click(object sender, EventArgs e)
    {
        panel_Edit.Visible = false;
        panel_Add.Visible = true;
    }
}